{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "## K-Means\n",
    "> 选择合适的k值,利用K-Means做聚类\n",
    "\n",
    "### 基本原理\n",
    "\n",
    "Kmeans是无监督学习的代表，没有所谓的Y。主要目的是分类，分类的依据就是样本之间的距离。比如要分为K类。步骤是：\n",
    "\n",
    "1. 随机选取K个点。\n",
    "2. 计算每个点到K个质心的距离，分成K个簇。\n",
    "3. 计算K个簇样本的平均值作新的质心\n",
    "4. 循环2、3\n",
    "5. 位置不变，距离完成\n",
    "\n",
    "### 距离\n",
    "Kmeans的基本原理是计算距离。一般有三种距离可选：\n",
    "\n",
    "* 欧氏距离\n",
    "d(x,u)=∑i=1n(xi−μi)2−−−−−−−−−−−√\n",
    "* 曼哈顿距离\n",
    "d(x,u)=∑i=1n(|xi−μ|)\n",
    "* 余弦距离\n",
    "\n",
    "### inertia\n",
    "每个簇内到其质心的距离相加，叫inertia。\n",
    "\n",
    "各个簇的inertia相加的和越小，即簇内越相似。（但是k越大inertia越小，追求k越大对应用无益处）\n",
    "\n",
    "\n",
    "[K-Means](https://www.cnblogs.com/pinard/p/6169370.html)\n",
    "[sklearn文档-svm](https://scikit-learn.org/dev/modules/svm.html#svm)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "## 模拟数据\n",
    "from sklearn.datasets import make_blobs\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "X, y = make_blobs(n_samples=500, # 500个样本\n",
    "                  n_features=2, # 每个样本2个特征\n",
    "                  centers=4, # 4个中心\n",
    "                  random_state=1 #控制随机性\n",
    ")"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 查看数据， 画出图像\n",
    "\n",
    "color = ['red', 'pink','orange','gray']\n",
    "fig, axi1=plt.subplots(1)\n",
    "for i in range(4):\n",
    "    axi1.scatter(X[y==i, 0], X[y==i,1],\n",
    "               marker='o',\n",
    "               s=8,\n",
    "               c=color[i]\n",
    "               )\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 使用KMeans类建模：\n",
    "\n",
    "from sklearn.cluster import KMeans\n",
    "n_clusters=3\n",
    "cluster = KMeans(n_clusters=n_clusters,random_state=0).fit(X)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "centroid = cluster.cluster_centers_ # 查看质心\n",
    "print(centroid)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "inertia=cluster.inertia_\n",
    "print(inertia)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "y_pred = cluster.predict(X)\n",
    "color=['red','pink','orange','gray']\n",
    "fig, axi1=plt.subplots(1)\n",
    "for i in range(n_clusters):\n",
    "    axi1.scatter(X[y_pred==i, 0], X[y_pred==i, 1],\n",
    "               marker='o',\n",
    "               s=8,\n",
    "               c=color[i])\n",
    "axi1.scatter(centroid[:,0],centroid[:,1],marker='x',s=100,c='black')"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "用Calinski-Harabasz Index评估的聚类分数:\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 4 Axes>",
      "image/png": "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8ODBREZGMnz48DzbRYSHH36Yli1b0qZNG958882c7XfddRfNmzcnISGB1atX5zkvNTWV+vXrM36878nf6dOnExcXh6Zp5O64dPz4cfr160doaGiB556muum2UgplaYWyJKCs3bxle3OXG1ZBEHRRoQY+t25L5jf4judrQDhnhliGXHmAjgP2EN9nD7dNOILHYwJza7ANhOAbIOhqVPgjqJpz8xp4QFm7oGL+QNX8HVXrL7QaX6BM/s/8Kkyfvv76a+Lj40lISGDw4MEcO3YMgBMnTjBw4EBatGjBwIEDSU72ZrclJyczcuRIEhIS6Nq1Kxs2bPA55nXXXUeTJk3o0KEDHTp0YO3atQCcPHmSCy+8kPbt2xMXF8cnn3xSrHso0pMXkfOLdaW8HAAa5Pq5/qltlY6uQzryzj8vMPPN2RzceYSO/dsx/NYLih23Tj2Wisli8tlJzZntRM7I2GlES6JVLXTRWaP+okanED5e8DoWa/FjiaGRIYSWMv7vdrsxm0v+gvfAAw+QmZnJe++9l2f7p59+yr59+9iyZQuapnH06FEAfv31V7Zv38727dtZvnw5t912G8uXL88579FHH6V3794FjteuXTtmzJjBLbfckme73W7n6aefZsOGDQU+RKepzrqtlILIN8ExB8n8AZQJFXSJt6lIcdGT8G3kBcjkzBDON+/XITzMhAiMvvEI0/+4kKvGvFQymU11iy/fGZRGtwvSJ7fbzd13382mTZuIiYlhwoQJvP322zzxxBO88MILDBgwgAcffJAXXniBF154gRdffJHnnnuODh06MHPmTLZs2cIdd9zBH3/84XPcyZMnc+mll+bZ9s4779C2bVt++uknkpKSaNWqFVdffTVWa+HzLf7Kk/8RuEIpZVNKNQFaAP/4aSy/06htA+753y28NPcxrpw0qkQTkypc58+0nzkpJ/LtO9PAm5SZaOX1TuxBds7tdS59rutWqIHfuHEjXbt2pUOHDiQkJLB9+3YApk6dSkJCAu3bt+faa68FvF5Y//79SUhIYMCAAezd623SfN1113HrrbfSrVs3JkyYwM6dOxk8eDCdOnWiV69ebNmypcj7HDBgAGFhYfm2T5kyhcceeyyn0XqtWt77mzVrFmPGjEEpRffu3UlJSeHQIe/q4lWrVnHkyBEuuOCCAsdr06YNrVrl9zhDQkLo2bMndvuZ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tjudTunYsaP89ddfIiIybNgwWbRoUc7+/v37y4oVK0RExGQySadOnaRbt24yc+ZMn+OsWrVKRo0aJSLe5/L0uUU9F4XptlG7xk8kJSUxYsQIZsyYQdu2bREZROuIFaxZcRyxtIXjI0Dyrq5du8HBzj1uXn26FntOPgE8UuQ45513Hvfddx9XX301o0aNon79+sybN49x48YRHOx9/Y2OjubkyZOkpKTQp08fAMaOHcvo0aNzrnP55ZcDsHXrVjZs2MDAgd4JOo/HQ926dQG49dbCc403btzIxIkT+f333/PtmzZtWrHCJk888QT33ntvnjj7mRw8eJDp06fz559/5tv38ssvM378eD799FN69+5NbGwsJlPlaIhRGThTrwG6X9yVzf23YNNspLrSmLrni3yx+l5P9iGidiQ1JYYVDy/j888/Z8yYgrO+evTowbPPPsv+/fsZNWoULVq0YP78+YwePZqYGO/bdHS0N7Nm6dKlzJgxA4Brr72WCRMm5Fxn9OjRmEwm0tPTWbJkSR6dP/22edFFFxUaIz906BDXXnstn332GZqWN/hx++2307t375w31MLYs2cPsbGx7Nq1i/79+xMfH0+zZs1y9uu6zn333cenn36a79ziPBcFYRh5PxEREUHDhg1ZvHgxbdu2RSmNrYmRXH75Ld4D9GTQkzi9yGr+941YusrDqnVmmnZLxu0ez9GjR+nbt69PY3aaBx98kGHDhjF79mzOO+885swp3eLLkBBvr08RIS4ujqVLS1aKdf/+/YwcOZKpU6fmUVyAf//9F7fbTadOnXK2xcbGsm/fPurXr4/b7ebkyZPUqFGD5cuX89133zFhwgRSUlLQNA273c748eNzzl2zZg07duygefPmAGRmZtK8eXN27NhBvXr1ch749PR0vv/+eyIjI0vzKzHwwZl6DXBg5wFuuvxGwFtX5nD2Edy6G0EYNGUIIeEhxDWJ46qGV9AitDmfXf0Z//zzT6FG/qqrrqJbt2788ssvDB06lPfee6/AYwvjtF7ruk5kZGSxYuK5SU1NZdiwYTz77LN075531fiTTz5JUlJSHtlO6/Vp9u/fT2xsbM4+gKZNm9K3b1/WrFmT51lJS0tjw4YN9O3bF4DDhw9z0UUX8eOPPxbruSiQglz8QHyqwiutyH+vtenp6XLeeefJl19+6fM4PXuBeI5dJZ6jA8WT8oTo7kP5rnGat956S956661819ixY0fOvy+55BKZOXOm/Prrrz7DNQkJCTmvlY8//rjcc889IpL3tdDhcEizZs1kyZIlIuJ9Hd2wYUOh95ucnCwJCQny/fff+9w/ceJEeeyxx/Jse/vtt+WWW24REZGvv/5aRo8ene+8wsI1uckdrklKSsp5pX7ooYfyvIZjhGvKRHH1OsudJT/s/1Ee/PdheWz9kzLvwB9y5OgREfHq0yWXXJIT9psxY4Y8+OCD+a6xc+fOnJDO/fffL6+99lpOuOZ0+O20Xl944YUydepUERH55JNP5OKLLxYRb7hm+vTpOdfs0aOHfPvttyIiouu6rF27ttD7dTgc0r9/f3nttdfy7fvggw+kR48ekpmZmWf7zz//LIMHDxZd12Xp0qXSpUsXERE5ceKEZGdni4hXR5s3by4bN24sdPzcz2VuShquCbhhz/2pCg+CSF4DnZycLJ07d5ZZs2aV+hoiInfccYd89dVX+Y4bP368xMXFSXx8vFxxxRU5ivT8889LmzZtpH379jJp0iQREVmzZo1069ZN4uPjZcSIEXLixAkRya9Ma9askV69eklCQoK0bdtW3n//fREpOCb/9NNPS3BwsLRv3z7nc+TIkZz9TZo0kc2bN+c5JysrSy699FJp1qyZdOnSRXbu3Jnvumcq85AhQ+TAgQP5jstt5KdPny7NmzeXFi1ayA033JDz+xAxjHxZKa1ep6enyznnnCPx8fHStm1bueuuu3Li5JMnT5bnnnsu3znPP/+8tG3bVtq3by+DBg3KMeiffvqpxMXFSUJCgowdO1ZERBITE6Vfv34SHx8v/fv3lz179ohIfiO/a9cuGTRokCQkJEibNm3kySefFJGCY/Kff/65mM3mPHq9Zs0aEfHG15s2bZqz/fS1dF2X22+/XZo2bSrt2rXLea7+/vtvadeunSQkJEi7du3kww8/zBnn0Ucf9fl7LC8jr7z7KwZKqSRgT4DFiAGKLvZy9mkO7KTkxW8q6v2UhrLeSyMRCUjCuqHbBdIE2EfJGzVUxHspC37T7Qpl5CsCSqmVItI50HKUF1XpfqrSvQSCqvT7q0r3Av69H6OevIGBgUEVxjDyBgYGBlUYw8jn5/1AC1DOVKX7qUr3Egiq0u+vKt0L+PF+jJi8gYGBQRXG8OQNDAwMqjCGkTcwMDCowhhG/hRKqdFKqY1KKV0p1fmMfZOUUjuUUluVUoMCJWNpUEo9oZQ6oJRae+ozNNAylQal1OBTv/8dSqkHAy1PZaGq6jUYul1cjNo1/1FlGjf74DURKX6XgQqG8vZXfAcYiLfd3gql1I8isimwklUKqrJeg6HbRWJ48qeQKtS4uQrSFdghIrtExAlMw/t3MSgCQ68rPH7XbcPIF00s3mXXp6kUjZvPYLxSap1S6mOlVFSghSkFVeFvUNGoKr9TQ7eLoFqFa/zduDlQFHZfwBTgabw1b54GXgGuP3vSGfibqqrXYOh2eVCtjLyInF+K04rduDlQFPe+lFIfAD/7WRx/UOH/BoGkquo1GLpdHhjhmqL5EbhCKWVTSjWhkjVuVkrVzfXjSLwTcZWNFUALpVQTpZQV74ThjwGWqbJTqfUaDN0uLtXKky8MpdRI4C2gJt7GzWtFZJCIbFRKnW7c7KbyNW5+SSnVAe8rbSJwS0ClKQUi4lZKjQfmACbgY/E21DYogiqs12DodrEwyhoYGBgYVGGMcI2BgYFBFcYw8gYGBgZVGMPIGxgYGFRhDCNvYGBgUIUxjLyBgYFBFcYw8gYGBgZVGMPIGxgYGFRh/h83Bs45jIyfuQAAAABJRU5ErkJggg==\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn import metrics\n",
    "from sklearn.cluster import MiniBatchKMeans\n",
    "\n",
    "for index, k in enumerate((2,3,4,5)):\n",
    "    plt.subplot(2,2,index+1)\n",
    "    y_pred = MiniBatchKMeans(n_clusters=k, batch_size = 200, random_state=9).fit_predict(X)\n",
    "    score= metrics.cluster.calinski_harabasz_score(X, y_pred)\n",
    "    plt.scatter(X[:, 0], X[:, 1], c=y_pred)\n",
    "    plt.text(.99, .01, ('k=%d, score: %.2f' % (k,score)),\n",
    "                 transform=plt.gca().transAxes, size=10,\n",
    "                 horizontalalignment='right')\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}